//package com.amumu.drama.common.moudles.sumapay.servlet;
//
//import com.amumu.drama.common.moudles.sumapay.config.SumapayStaticVar;
//import com.amumu.drama.common.moudles.sumapay.dto.ReturnModel;
//import com.amumu.drama.common.moudles.sumapay.tools.JsonToolUtil;
//import com.amumu.drama.common.moudles.sumapay.tools.MD5Tools;
//import org.apache.http.HttpStatus;
//import org.apache.http.client.HttpClient;
//
//import javax.servlet.ServletException;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.io.PrintWriter;
//import java.util.Map;
//
//
//public class SingleQueryServlet extends HttpServlet {
//    /**
//     *
//     */
//    private static final long serialVersionUID = 1L;
//
//    /*
//    public static void main(String[] args) throws IOException, URISyntaxException {
//        httpPost();
//    }
//    */
//    @Override
//    public void doGet(HttpServletRequest request, HttpServletResponse response)
//            throws ServletException, IOException {
//
//        doPost(request, response);
//    }
//
//    @Override
//    public void doPost(HttpServletRequest request, HttpServletResponse response)
//            throws ServletException, IOException {
//        response.setContentType("text/html;charset=GBK");
//        request.setCharacterEncoding("GBK");
//        response.setCharacterEncoding("GBK");
//        PrintWriter out = response.getWriter();
//
//        //�õ�sign������ȡ��תurl
//        String requestId = request.getParameter("requestId");
//        String merchantCode = request.getParameter("merchantCode");
//        String originalRequestId = request.getParameter("originalRequestId");
//
//        String merKey = request.getParameter("merKey");
//
//        StringBuilder sb = new StringBuilder();
//        sb.append(requestId);
//        sb.append(merchantCode);
//        sb.append(originalRequestId);
//
//        String signature = MD5Tools.Md5(sb.toString(), merKey);
//
//        HttpClient client = new HttpClient();
//        PostMethod postmethod = new PostMethod(SumapayStaticVar.singleQueryUrl);
//
//        postmethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK");
//        postmethod.addParameter("requestId", requestId);
//        postmethod.addParameter("merchantCode", merchantCode);
//        postmethod.addParameter("originalRequestId", originalRequestId);
//
//        postmethod.addParameter("signature", signature);
//
//        int statusCode = client.executeMethod(postmethod);
//        byte[] responseBody = null;
//        String responseBody1 = "";
//        if (statusCode != HttpStatus.SC_OK) {
//            // TODO ����ʧ�ܣ�������Ӧҵ����
//            response.getOutputStream().write(("����ʧ�ܣ�http����ֵ��" + statusCode).getBytes("GBK"));
//            return;
//        } else {
//            //��ȡ����ֵ
//            responseBody = postmethod.getResponseBody();
//        }
//        responseBody1 = new String(responseBody, "GBK");
//        Map<String, Object> resultMap = JsonToolUtil.transJsonToMap(responseBody1);
//
//        String returnRequestId = (String) resultMap.get("requestId");
//        String result = (String) resultMap.get("result");
//        String rspMerchantCode = (String) resultMap.get("merchantCode");
//        String rspOriginalRequestId = (String) resultMap.get("originalRequestId");
//        String tradeId = (String) resultMap.get("tradeId");
//        String tradeSum = (String) resultMap.get("tradeSum");
//        String status = (String) resultMap.get("status");
//        String requestTime = (String) resultMap.get("requestTime");
//        String errorCode = (String) resultMap.get("errorCode");
//        String returnSignature = (String) resultMap.get("signature");
//
//
//        StringBuilder returnSb = new StringBuilder();
//        returnSb.append(returnRequestId);
//        returnSb.append(result);
//        returnSb.append(rspMerchantCode);
//        returnSb.append(rspOriginalRequestId);
//        returnSb.append(tradeId);
//        returnSb.append(tradeSum);
//        returnSb.append(status);
//        returnSb.append(requestTime);
//
//        String returnSignStr = returnSb.toString();
//        String signature2 = MD5Tools.Md5(returnSb.toString(), merKey);
//        String signCheck;
//        if (signature2.equals(returnSignature)) {
//            signCheck = "��ǩ�ɹ�";
//        } else {
//            signCheck = "��ǩʧ��";
//        }
//
//
//        ReturnModel returnModel = new ReturnModel();
//
//
//        returnModel.setRequestId(returnRequestId);
//        returnModel.setResult(result);
//        returnModel.setMerchantCode(rspMerchantCode);
//        returnModel.setOriginalRequestId(rspOriginalRequestId);
//        returnModel.setTradeId(tradeId);
//        returnModel.setTradeSum(tradeSum);
//        returnModel.setStatus(status);
//        returnModel.setRequestTime(requestTime);
//        returnModel.setErrorCode(errorCode);
//
//        returnModel.setSignStr(returnSignStr);
//        returnModel.setSignature(signature2);
//        returnModel.setReturnSignature(returnSignature);
//        returnModel.setSignCheck(signCheck);
//
//        request.getSession().setAttribute("returnModel", returnModel);
//        response.sendRedirect("SingleQuery.jsp");
//
//
//        out.flush();
//        out.close();
//    }
//
//
//    @Override
//    public void init() throws ServletException {
//        // Put your code here
//    }
//
//}
